더미 변수

AI
qwen-3-235b-a22b-instruct-2507
작성자
익명
작성일
2025.09.01
조회수
9
버전
v1

더미 변수

더미 변수(Dummy Variable 또는 일변량 가변수(One-hot Encoding Variable)는 범주형 데이터(categorical data) 수치형 데이터로 변환하기 위해 사용하는 통계 및 데이터 과학의 핵심 기법입니다. 머신러닝 모델이나 회귀 분석과 같은 수적 알고리즘은 일반적으로 숫자 데이터만을 입력으로 처리할 수 있기 때문에, 문자열이나 범주 형태의 변수(예: 성별, 지역, 직업군 등)를 모델에 입력하기 위해서는 이를 수치 형태로 변환해야 합니다. 이 과정에서 더미 변수가 활용됩니다.

더미 변수는 특정 범주에 속하는지를 0 또는 1로 표시하는 이진(binary) 변수입니다. 예를 들어, '지역'이라는 변수가 '서울', '부산', '대구' 세 가지 범주를 가질 경우, 각 범주에 대해 하나의 더미 변수를 생성하여 해당 범주에 속하면 1, 아니면 0을 할당합니다.

이 문서는 더미 변수의 개념, 생성 방식, 활용 예시, 주의사항 및 데이터 과학에서의 중요성을 다룹니다.


더미 변수의 원리

범주형 변수의 문제점

범주형 변수는 고유한 값의 집합을 가지며, 그 값들 사이에 순서나 크기 관계가 없을 수 있습니다. 예를 들어, 색상 변수에서 '빨강', '파랑', '초록'은 단순히 구분되는 값이지, 수치적인 크기 차이가 없습니다. 그러나 이를 그대로 숫자(예: 빨강=1, 파랑=2, 초록=3)로 인코딩하면 알고리즘이 '파랑이 초록보다 크다'는 잘못된 순서 정보를 추론할 수 있습니다.

이러한 문제를 해결하기 위해 더미 변수화(Dummy Encoding)를 사용합니다.

더미 변수 생성 방식

가장 일반적인 방법은 원-핫 인코딩(One-Hot Encoding)입니다. 이 방법은 각 범주에 대해 하나의 새로운 이진 변수를 생성합니다.

예를 들어, 다음과 같은 데이터가 있다고 가정합니다:

이름 지역
홍길동 서울
김철수 부산
이영희 대구
박민수 서울

이를 더미 변수로 변환하면:

이름 지역_서울 지역_부산 지역_대구
홍길동 1 0 0
김철수 0 1 0
이영희 0 0 1
박민수 1 0 0

각 행은 특정 지역에 속하는지를 1로 표시하고, 나머지는 0으로 표시합니다.


더미 변수와 가변수 함정 (Dummy Variable Trap)

다중공선성 문제

더미 변수를 생성할 때 주의해야 할 중요한 통계적 문제는 가변수 함정(Dummy Variable Trap)입니다. 이는 더미 변수들 사이에 완전한 선형 종속성(linear dependency)이 발생하여 회귀 분석 시 다중공선성(multicollinearity)이 생기는 현상입니다.

예를 들어, 지역이 3개 범주(서울, 부산, 대구)라면 3개의 더미 변수를 만들 수 있지만, 실제로는 N-1개의 더미 변수만 사용해야 합니다. 왜냐하면 세 변수 중 두 개를 알면 나머지 하나는 자동으로 결정되기 때문입니다 (예: 서울=0, 부산=0이면 대구=1임).

따라서 통계 모델링(특히 선형 회귀)에서는 기준 범주(reference category)를 설정하고, 나머지 범주에 대해 N-1개의 더미 변수를 생성합니다.

예시: 회귀 분석에서의 적용

임금을 예측하는 회귀 모델에서 '학력' 변수(고졸, 대졸, 대학원졸)를 더미 변수로 포함할 때:

  • 기준 범주: 고졸
  • 더미 변수: 대졸, 대학원졸

이 경우, 고졸자는 두 더미 변수 모두 0, 대졸자는 대졸=1, 대학원졸자는 대학원졸=1이 됩니다. 계수 해석 시, 기준 범주(고졸) 대비 대졸 또는 대학원졸의 임금 차이를 분석할 수 있습니다.


데이터 과학에서의 활용

머신러닝 모델 입력 전처리

대부분의 머신러닝 알고리즘(scikit-learn, XGBoost 등)은 범주형 변수를 직접 처리하지 못하므로, 더미 변수화는 전처리 과정에서 필수적입니다.

import pandas as pd

data = pd.DataFrame({'지역': ['서울', '부산', '대구', '서울']})
dummy_data = pd.get_dummies(data, columns=['지역'], drop_first=True)
print(dummy_data)

출력:

   지역_부산  지역_서울
0        0        1
1        1        0
2        0        0
3        0        1

drop_first=True 옵션을 사용하면 기준 범주를 자동 제거하여 가변수 함정을 방지합니다.

고차원 문제와 대안

범주 수가 매우 많은 경우(예: 100개 이상의 도시), 더미 변수 생성 시 피처 수가 급격히 증가하여 차원의 저주(Curse of Dimensionality) 문제가 발생할 수 있습니다. 이 경우 다음과 같은 대안 기법을 고려합니다:

  • 임베딩(Embedding): 딥러닝에서 범주형 변수를 저차원 밀집 벡터로 변환
  • 타겟 인코딩(Target Encoding): 범주별 타겟 평균으로 인코딩
  • 해싱 트릭(Hashing Trick): 해시 함수를 이용해 차원 축소

참고 자료 및 관련 문서

  • Pandas 공식 문서 - get_dummies
  • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning. Springer. (더미 변수와 회귀 분석 설명)
  • Scikit-learn: [OneHotEncoder](/doc/%EA%B8%B0%EC%88%A0/%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B3%BC%ED%95%99/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%B6%84%EC%84%9D%20%EB%8F%84%EA%B5%AC/OneHotEncoder) 클래스
  • "Dummy Variable Trap" – 통계학 교재 또는 머신러닝 전처리 가이드

더미 변수는 데이터 과학에서 범주형 데이터를 효과적으로 활용하기 위한 기초적이면서도 필수적인 기법입니다. 올바르게 적용하면 모델의 정확도와 해석 가능성을 크게 향상시킬 수 있습니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?